A computer system may include one or more central processing units (CPUs) which may communicate with one or more storage devices. A CPU may include a processor to execute an operating system and/or other software applications that utilize a storage device coupled to the CPU. The software applications may write data to and read data from the storage device.
Data in a storage device may be backed up at different points-in-time to allow restoration of data to a saved point-in-time as part of a process referred to as checkpointing. Operating system checkpointing involves the operating system storing prior versions of updated data to create a checkpoint to allow the user to return the state of the data to that checkpoint. However, operating system checkpointing is susceptible to attacks by malware on the operating system and application files that may corrupt the checkpointed data and prevent the user from restoring data to a point before the malware was installed. Further, operating system based checkpointing is susceptible to other software interference and anti-virus programs may need to be disabled for checkpointing to work properly. Virtual Machine checkpointing involves a virtual machine monitoring for changes and storing prior versions of updated data to allow restoring the state of the virtual machine to a checkpoint time. Virtual machine checkpointing is also susceptible to malware attacks. System backups comprise a backup of all the data in a drive as of a checkpoint time to a different partition on the storage device or another storage device. System backups may run on the host system and consume significant host resources, which may result in performance degradation at the host system. Further, host based system backups are often slow and require substantial time to backup and restore.
Like reference numbers and designations in the various drawings indicate like elements.